using UniversalAdmin.Application.DTOs;

namespace UniversalAdmin.Application.Services;

public interface IPermissionService
{
    // 基础CRUD操作
    Task<IEnumerable<PermissionDto>> GetAllPermissionsAsync();
    Task<PermissionDto?> GetPermissionByIdAsync(Guid id);
    Task<PermissionDto> CreatePermissionAsync(CreatePermissionDto dto);
    Task<PermissionDto?> UpdatePermissionAsync(Guid id, UpdatePermissionDto dto);
    Task<bool> DeletePermissionAsync(Guid id);

    // 权限树操作
    Task<IEnumerable<PermissionTreeDto>> GetPermissionTreeAsync();
    Task<IEnumerable<PermissionDto>> GetPermissionsByRoleAsync(Guid roleId);

    // 批量操作
    Task BatchUpdateStatusAsync(List<Guid> permissionIds, bool isEnabled);

    // 统计信息
    Task<object> GetPermissionStatsAsync();
} 